In recent years, an increasing number of e-commerce providers and business enterprises have come to rely on middleware and application server technology as the lifeblood of their business. For example, application servers form a proven foundation for supporting e-commerce applications, providing the presentation, business and information-access logic, security and management services, and underlying infrastructure needed for highly scalable and mission-critical software applications. These servers manage all of the underlying complexities of a company's applications, allowing the organization to focus instead on delivering new and innovative products and services.
With the rising use and pervasiveness of such middleware systems, it has become important for business enterprises to diagnose and resolve various errors, misbehaviors and other problems that may occur in this field. For example, a middleware system, such as an application server, typically uses multiple components and resources working together to service an incoming request. A problem in the higher level service, can be a manifestation of a misbehavior in any of the under lying components or resources servicing the request. But the converse is not true, i.e., a misbehavior of a resource/component need not necessarily indicate a problem in the service. Hence in order to diagnose a problem it is often useful to relate back misbehaviors in different components/resources to the overall service provided to a user and tie it with a problem viewed by the user. It is typical for misbehavior in more than one component/resource to contribute to the problem.
As an illustration, an expense report request can be serviced by a combination of Servlets, Enterprise Java Beans (EJBs) and data sources. The slow performance of expense report request can be due to a missing index in one of the tables accessed through the data source, but a missing index need not cause the expense report to be slow performing. In addition, a slow performance can be due to wrong code in the EJB and a missing index for a table.
In many cases, it would be advantageous to compute performance at each of the components or points of the middleware system, and to identify whichever point is not performing well as the problem point. However, there is no standard way of measuring misbehavior of components/resources. Every component/resource has different parameters by which misbehavior can be measured. Given that all misbehavior need not contribute to a problem, it becomes helpful to understand to differentiate between the different misbehaviors and prioritize them against the overall middleware system problem. This may not be possible when different measurements are used. Thus, what is desirable is a common measurement ground to measure misbehavior of different components/resource